package cargaBaseDatos.mundo;
import java.sql.Connection;
import java.sql.Statement;
import java.text.SimpleDateFormat;

import javax.swing.JOptionPane;

import org.h2.jdbcx.JdbcConnectionPool;

import com.csvreader.CsvReader;

/**
 * Carga los datos
 */
public class CargadorFacebook 
{
	/**
	 * Ruta del archivo CSV
	 */
	public static final String RUTA_CSV  = "./data/datos_facebook.csv";
	
	/**
	 * Constructor
	 */
	public CargadorFacebook()
	{
		leerCSV();
	}
	
	private void leerCSV() 
	{
		try 
		{
			CsvReader publicaciones = new CsvReader( RUTA_CSV );		
			publicaciones.readHeaders();
			while ( publicaciones.readRecord() )
			{
				String facebookID = publicaciones.get("FacebookID");
				String date = publicaciones.get("Date");
				String usuario = publicaciones.get("Usuario");
				String titulo = publicaciones.get("Titulo");
				String link = publicaciones.get("Link");
				String sentiment = publicaciones.get("Sentiment");
				JdbcConnectionPool cp = JdbcConnectionPool.create( "jdbc:h2:~/test", "sa", "sa" );
				Connection conn = cp.getConnection();
				Statement p = conn.createStatement();
				SimpleDateFormat sdf = new SimpleDateFormat( "yyyy/MM/dd" );
				sdf.applyLocalizedPattern(date);
				p.execute( "INSERT INTO dbo.DimFacebookCount VALUES("+Integer.parseInt(facebookID)+",'"+date.replace("/", "-")+"',"+usuario+","+titulo+",'"+sentiment+",'"+link +"')" );
				conn.close();
				cp.dispose();
			}
			publicaciones.close();
		} 
		catch (Exception e) 
		{
			JOptionPane.showMessageDialog(null, "Error al cargar los datos: " + e.getMessage());
		}		
	}
}
